﻿// Pagina para la administracion de los feriados
Ext.define('Recorridos', {
    extend: 'FormBase',
    Title: 'Consulta de Recorridos',
    Proxy: 'Handlers/Consultas/Recorridos.ashx',
    diasRecorrida: CreateForeignStore('diasRecorrida', 'Model.diasRecorrida'),
    listaRecorridas: CreateForeignStore('listaRecorridas', 'Model.listaRecorrida'),
    Buttons: [{
        text: 'Procesar',
        handler: function () {
            try {
                if (Ext.getCmp('tpMain').getActiveTab().id == 'pnlPorFecha') {
                    if (Ext.getCmp('grdFechas').getSelectionModel().getSelection().length == 0) {
                        Ext.Msg.alert('Conexiones', 'Ninguna fecha fue seleccionada');
                        return;
                    }
                } else {
                    if (Ext.isEmpty(Ext.getCmp('cbRecorridas').getValue())) {
                        Ext.Msg.alert('Conexiones', 'Ningun recorrido fue seleccionado');
                        return;
                    }
                }
                var body = Ext.getBody();
                var uniqueId = Ext.id();

                body.mask('Generando PDF...');

                var frame = body.createChild({
                    tag: 'iframe',
                    cls: 'x-hidden',
                    name: 'iframe'
                });

                frame.on('load', function () {
                    body.unmask();
                    Ext.removeNode(frame.dom);
                    if (!Ext.isEmpty(Ext.util.Cookies.get(uniqueId + '_exMessage'))) {
                        Ext.Msg.alert('Conexiones', Ext.util.Cookies.get(uniqueId + '_exMessage'));
                        Ext.util.Cookies.clear(uniqueId + '_exMessage');
                        return;
                    }
                    Ext.Msg.alert('Conexiones', 'Ocurrio un error generando el PDF.');
                });

                var form = body.createChild({
                    tag: 'form',
                    cls: 'x-hidden',
                    method: 'post',
                    action: activeInstance.ObtenerProxy() + "?action=CrearPdf",
                    target: 'iframe',
                    enctype: 'application/x-www-form-urlencoded',
                    encoding: 'application/x-www-form-urlencoded'
                });

                if (Ext.getCmp('tpMain').getActiveTab().id == 'pnlPorFecha') {
                    var fechas = [];
                    Ext.each(Ext.getCmp('grdFechas').getSelectionModel().getSelection(), function (sel) {
                        fechas.push(Ext.Date.format(sel.data.FechaAsignado, '\'Ymd\''));
                    });
                    hiddenItem1 = document.createElement('input');
                    Ext.fly(hiddenItem1).set({
                        type: 'hidden',
                        value: fechas.join(','),
                        name: 'fechas'
                    });
                    form.appendChild(hiddenItem1);
                } else {
                    hiddenItem1 = document.createElement('input');
                    Ext.fly(hiddenItem1).set({
                        type: 'hidden',
                        value: Ext.getCmp('cbRecorridas').getValue(),
                        name: 'idRecorrida'
                    });
                    form.appendChild(hiddenItem1);
                }

                hiddenItem1 = document.createElement('input');
                Ext.fly(hiddenItem1).set({
                    type: 'hidden',
                    value: (Ext.getCmp('tpMain').getActiveTab().id == 'pnlPorFecha') ? Ext.getCmp('rgFechaDestino').getValue().rb : Ext.getCmp('rgRecorridaDestino').getValue().rb,
                    name: 'tipoExportacion'
                });
                form.appendChild(hiddenItem1);

                hiddenItem1 = document.createElement('input');
                Ext.fly(hiddenItem1).set({
                    type: 'hidden',
                    value: uniqueId,
                    name: 'cookieValue'
                });
                form.appendChild(hiddenItem1);
                form.dom.submit();
                fileDownloaded();

                function fileDownloaded() {
                    if (Ext.util.Cookies.get('ceUniqueValue') == uniqueId) {
                        body.unmask();
                        Ext.util.Cookies.clear('ceUniqueValue');
                        Ext.removeNode(frame.dom);
                        return;
                    }
                    window.setTimeout(fileDownloaded, 1000);
                }
            } catch (e) {

            }
        }
    }],
    Items: [{
        id: 'tpMain',
        xtype: 'tabpanel',
        frame: true,
        border: false,
        listeners: {
            render: function (pnl, opt) {
                var res = activeInstance.EjecutarEnServidor('ObtenerTipoRecorrida');
                if (res == 'C') {
                    pnl.setActiveTab(Ext.getCmp('pnlPorFecha'));
                    Ext.getCmp('pnlPorRecorrido').setDisabled(true);
                } else {
                    pnl.setActiveTab(Ext.getCmp('pnlPorRecorrido'));
                    Ext.getCmp('pnlPorFecha').setDisabled(true);
                }
            }
        },
        items: [{
            id: 'pnlPorFecha',
            title: 'Por Fecha',
            border: false,
            frame: true,
            items: [{
                xtype: 'panel',
                layout: 'column',
                border: false,
                frame: true,
                items: [{
                    xtype: 'fieldset',
                    columnWidth: 0.5,
                    collapsible: true,
                    title: 'Filtro a Aplicar',
                    border: false,
                    items: [{
                        xtype: 'gridpanel',
                        id: 'grdFechas',
                        selModel: new Ext.selection.CheckboxModel(),
                        store: Ext.data.StoreManager.lookup('diasRecorrida'),
                        hideHeaders: true,
                        emptyText: 'No hay recorridas para exportar',
                        columns: [{ xtype: 'datecolumn', text: 'FechaAsignado', dataIndex: 'FechaAsignado', flex: 1, format: 'l d/m'}]
                    }]
                }, {
                    xtype: 'fieldset',
                    columnWidth: 0.5,
                    collapsible: true,
                    title: 'Destino',
                    border: false,
                    items: [{
                        xtype: 'radiogroup',
                        id: 'rgFechaDestino',
                        columns: 1,
                        vertical: true,
                        items: [
                                    { boxLabel: 'PDF', name: 'rb', inputValue: 'PDF', checked: true },
                                    { boxLabel: 'Email', name: 'rb', inputValue: 'EMAIL' }
                                ]
                    }]
                }]
            }]
        }, {
            id: 'pnlPorRecorrido',
            title: 'Por Recorrido',
            border: false,
            frame: true,
            items: [{
                xtype: 'panel',
                layout: 'column',
                border: false,
                frame: true,
                items: [{
                    xtype: 'fieldset',
                    columnWidth: 0.5,
                    collapsible: true,
                    title: 'Filtro a Aplicar',
                    items: [{
                        id: 'cbRecorridas',
                        xtype: 'combobox',
                        queryMode: 'local',
                        displayField: 'descripcion',
                        valueField: 'id',
                        editable: false,
                        forceSelection: true,
                        store: Ext.StoreMgr.get('listaRecorridas')
                    }]
                }, {
                    xtype: 'fieldset',
                    columnWidth: 0.5,
                    collapsible: true,
                    title: 'Destino',
                    items: [{
                        xtype: 'radiogroup',
                        id: 'rgRecorridaDestino',
                        columns: 1,
                        vertical: true,
                        items: [
                                        { boxLabel: 'PDF', name: 'rb', inputValue: 'PDF', checked: true },
                                        { boxLabel: 'Email', name: 'rb', inputValue: 'EMAIL' }
                                    ]
                    }]
                }]
            }]
        }]
    }]
});
